home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Source Code / C / Applications / Tcl-Tk 8.0 / Pre-installed version / tk8.0 / tests / imgPhoto.test < prev    next >
Encoding:
Text File  |  1997-08-15  |  17.3 KB  |  424 lines  |  [TEXT/ALFA]

  1. # This file is a Tcl script to test out the "photo" image type and the
  2. # other procedures in the file tkImgPhoto.c.  It is organized in the
  3. # standard fashion for Tcl tests.
  4. #
  5. # Copyright (c) 1994 The Australian National University
  6. # Copyright (c) 1994-1997 Sun Microsystems, Inc.
  7. #
  8. # See the file "license.terms" for information on usage and redistribution
  9. # of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  10. #
  11. # Author: Paul Mackerras (paulus@cs.anu.edu.au)
  12. #
  13. # SCCS: @(#) imgPhoto.test 1.23 97/08/08 11:29:25
  14.  
  15. if {[info procs test] != "test"} {
  16.     source defs
  17. }
  18.  
  19. foreach i [winfo children .] {
  20.     destroy $i
  21. }
  22. wm geometry . {}
  23. raise .
  24.  
  25. eval image delete [image names]
  26.  
  27. canvas .c
  28. pack .c
  29. update
  30.  
  31. test imgPhoto-1.1 {options for photo images} {
  32.     image create photo p1 -width 79 -height 83
  33.     list [lindex [p1 configure -width] 4] [lindex [p1 configure -height] 4] \
  34.     [image width p1] [image height p1]
  35. } {79 83 79 83}
  36. test imgPhoto-1.2 {options for photo images} {
  37.     list [catch {image create photo p1 -file no.such.file} err] \
  38.     [string tolower $err]
  39. } {1 {couldn't open "no.such.file": no such file or directory}}
  40. test imgPhoto-1.3 {options for photo images} {
  41.     list [catch {image create photo p1 -file \
  42.         [file join $tk_library demos/images/teapot.ppm] \
  43.         -format no.such.format} err] $err
  44. } {1 {image file format "no.such.format" is not supported}}
  45. test imgPhoto-1.4 {options for photo images} {
  46.     image create photo p1 -file [file join $tk_library demos/images/teapot.ppm]
  47.     list [image width p1] [image height p1]
  48. } {256 256}
  49. test imgPhoto-1.5 {options for photo images} {
  50.     image create photo p1 \
  51.         -file [file join $tk_library demos/images/teapot.ppm] \
  52.         -format ppm -width 79 -height 83
  53.     list [image width p1] [image height p1] \
  54.     [lindex [p1 configure -file] 4] [lindex [p1 configure -format] 4]
  55. } [list 79 83 [file join $tk_library demos/images/teapot.ppm] ppm]
  56. test imgPhoto-1.6 {options for photo images} {
  57.     image create photo p1 -palette 2/2/2 -gamma 2.2
  58.     list [format %.1f [lindex [p1 configure -gamma] 4]] \
  59.         [lindex [p1 configure -palette] 4]
  60. } {2.2 2/2/2}
  61. test imgPhoto-1.7 {options for photo images} {
  62.     list [catch {image create photo p1 -file README} err] $err
  63. } {1 {couldn't recognize data in image file "README"}}
  64. test imgPhoto-1.8 {options for photo images} {
  65.     list [catch {image create photo -blah blah} err] $err
  66. } {1 {unknown option "-blah"}}
  67.  
  68. test imgPhoto-2.1 {ImgPhotoCreate procedure} {
  69.     eval image delete [image names]
  70.     catch {image create photo -blah blah}
  71.     image names
  72. } {}
  73. test imgPhoto-2.2 {ImgPhotoCreate procedure} {
  74.     eval image delete [image names]
  75.     image create photo image1
  76.     list [info commands image1] [image names] \
  77.     [image width image1] [image height image1]
  78. } {image1 image1 0 0}
  79. # test imgPhoto-2.3 {ImgPhotoCreate procedure: creation failure} {
  80. #     image create photo p1
  81. #     image create photo p2 -width 10 -height 10
  82. #     catch {image create photo p2 -file bogus.img} msg
  83. #     p1 copy p2
  84. #     set msg
  85. # } {couldn't open "bogus.img": no such file or directory}
  86.  
  87. test imgPhoto-3.1 {ImgPhotoConfigureMaster procedure} {
  88.     image create photo p1 -file [file join $tk_library demos/images/teapot.ppm]
  89.     p1 configure -file [file join $tk_library demos/images/teapot.ppm]
  90. } {}
  91. test imgPhoto-3.2 {ImgPhotoConfigureMaster procedure} {
  92.     image create photo p1 -file [file join $tk_library demos/images/teapot.ppm]
  93.     list [catch {p1 configure -file bogus} err] [string tolower $err] \
  94.     [image width p1] [image height p1]
  95. } {1 {couldn't open "bogus": no such file or directory} 256 256}
  96. test imgPhoto-3.3 {ImgPhotoConfigureMaster procedure} {
  97.     image create photo p1
  98.     .c create image 10 10 -image p1 -tags p1.1 -anchor nw
  99.     .c create image 300 10 -image p1 -tags p1.2 -anchor nw
  100.     update
  101.     p1 configure -file [file join $tk_library demos/images/teapot.ppm]
  102.     update
  103.     list [image width p1] [image height p1] [.c bbox p1.1] [.c bbox p1.2]
  104. } {256 256 {10 10 266 266} {300 10 556 266}}
  105.  
  106. eval image delete [image names]
  107. image create photo p1
  108. .c create image 10 10 -image p1
  109. update
  110.  
  111. test imgPhoto-4.1 {ImgPhotoCmd procedure} {
  112.     list [catch {p1} err] $err
  113. } {1 {wrong # args: should be "p1 option ?arg arg ...?"}}
  114. test imgPhoto-4.2 {ImgPhotoCmd procedure} {
  115.     list [catch {p1 blah} err] $err
  116. } {1 {bad option "blah": must be blank, cget, configure, copy, get, put, read, redither, or write}}
  117. test imgPhoto-4.3 {ImgPhotoCmd procedure: blank option} {
  118.     p1 blank
  119.     list [catch {p1 blank x} err] $err
  120. } {1 {wrong # args: should be "p1 blank"}}
  121. test imgPhoto-4.4 {ImgPhotoCmd procedure: cget option} {
  122.     list [catch {p1 cget} msg] $msg
  123. } {1 {wrong # args: should be "p1 cget option"}}
  124. test imgPhoto-4.5 {ImgPhotoCmd procedure: cget option} {
  125.     image create photo p2 -width 25 -height 30
  126.     list [p2 cget -width] [p2 cget -height]
  127. } {25 30}
  128. test imgPhoto-4.6 {ImgPhotoCmd procedure: configure option} {
  129.     llength [p1 configure]
  130. } {7}
  131. test imgPhoto-4.7 {ImgPhotoCmd procedure: configure option} {
  132.     p1 conf -palette 3/4/2
  133.     p1 configure -palette
  134. } {-palette {} {} {} 3/4/2}
  135. test imgPhoto-4.8 {ImgPhotoCmd procedure: configure option} {
  136.     list [catch {p1 configure -blah} msg] $msg
  137. } {1 {unknown option "-blah"}}
  138. test imgPhoto-4.9 {ImgPhotoCmd procedure: configure option} {
  139.     list [catch {p1 configure -palette {} -gamma} msg] $msg
  140. } {1 {value for "-gamma" missing}}
  141. test imgPhoto-4.10 {ImgPhotoCmd procedure: copy option} {
  142.     image create photo p2 -file [file join $tk_library demos/images/teapot.ppm]
  143.     p1 configure -width 0 -height 0 -palette {} -gamma 1
  144.     p1 copy p2
  145.     list [image width p1] [image height p1] [p1 get 100 100]
  146. } {256 256 {169 117 90}}
  147. test imgPhoto-4.11 {ImgPhotoCmd procedure: copy option} {
  148.     list [catch {p1 copy} msg] $msg
  149. } {1 {wrong # args: should be "p1 copy source-image ?-from x1 y1 x2 y2? ?-to x1 y1 x2 y2? ?-zoom x y? ?-subsample x y?"}}
  150. test imgPhoto-4.12 {ImgPhotoCmd procedure: copy option} {
  151.     list [catch {p1 copy blah} msg] $msg
  152. } {1 {image "blah" doesn't exist or is not a photo image}}
  153. test imgPhoto-4.13 {ImgPhotoCmd procedure: copy option} {
  154.     list [catch {p1 copy p2 -blah} msg] $msg
  155. } {1 {unrecognized option "-blah": must be -from, -shrink, -subsample, -to, or -zoom}}
  156. test imgPhoto-4.14 {ImgPhotoCmd procedure: copy option} {
  157.     list [catch {p1 copy p2 -from -to} msg] $msg
  158. } {1 {the "-from" option requires one to four integer values}}
  159. test imgPhoto-4.15 {ImgPhotoCmd procedure: copy option} {
  160.     p1 copy p2
  161.     p1 copy p2 -from 0 70 60 120 -shrink
  162.     list [image width p1] [image height p1] [p1 get 20 10]
  163. } {60 50 {215 154 120}}
  164. test imgPhoto-4.16 {ImgPhotoCmd procedure: copy option} {
  165.     p1 copy p2 -from 60 120 0 70 -to 20 50
  166.     list [image width p1] [image height p1] [p1 get 40 80]
  167. } {80 100 {19 92 192}}
  168. test imgPhoto-4.17 {ImgPhotoCmd procedure: copy option} {
  169.     p1 copy p2 -from 0 120 60 70 -to 0 0 100 100
  170.     list [image width p1] [image height p1] [p1 get 80 60]
  171. } {100 100 {215 154 120}}
  172. test imgPhoto-4.18 {ImgPhotoCmd procedure: copy option} {
  173.     p1 copy p2 -from 60 70 0 120 -zoom 2
  174.     list [image width p1] [image height p1] [p1 get 100 50]
  175. } {120 100 {169 99 47}}
  176. test imgPhoto-4.19 {ImgPhotoCmd procedure: copy option} {
  177.     p1 copy p2 -from 0 70 60 120
  178.     list [image width p1] [image height p1] [p1 get 100 50]
  179. } {120 100 {169 99 47}}
  180. test imgPhoto-4.20 {ImgPhotoCmd procedure: copy option} {
  181.     p1 copy p2 -from 20 20 200 180 -subsample 2 -shrink
  182.     list [image width p1] [image height p1] [p1 get 50 30]
  183. } {90 80 {207 146 112}}
  184. test imgPhoto-4.21 {ImgPhotoCmd procedure: copy option} {
  185.     p1 copy p2
  186.     set result [list [image width p1] [image height p1]]
  187.     p1 conf -width 49 -height 51
  188.     lappend result [image width p1] [image height p1]
  189.     p1 copy p2
  190.     lappend result [image width p1] [image height p1]
  191.     p1 copy p2 -from 0 0 10 10 -shrink
  192.     lappend result [image width p1] [image height p1]
  193.     p1 conf -width 0
  194.     p1 copy p2 -from 0 0 10 10 -shrink
  195.     lappend result [image width p1] [image height p1]
  196.     p1 conf -height 0
  197.     p1 copy p2 -from 0 0 10 10 -shrink
  198.     lappend result [image width p1] [image height p1]
  199. } {256 256 49 51 49 51 49 51 10 51 10 10}
  200. test imgPhoto-4.22 {ImgPhotoCmd procedure: get option} {
  201.     p1 read [file join $tk_library demos/images/teapot.ppm]
  202.     list [p1 get 100 100] [p1 get 150 100] [p1 get 100 150]
  203. } {{169 117 90} {172 115 84} {35 35 35}}
  204. test imgPhoto-4.23 {ImgPhotoCmd procedure: get option} {
  205.     list [catch {p1 get 256 0} err] $err
  206. } {1 {p1 get: coordinates out of range}}
  207. test imgPhoto-4.24 {ImgPhotoCmd procedure: get option} {
  208.     list [catch {p1 get 0 -1} err] $err
  209. } {1 {p1 get: coordinates out of range}}
  210. test imgPhoto-4.25 {ImgPhotoCmd procedure: get option} {
  211.     list [catch {p1 get} err] $err
  212. } {1 {wrong # args: should be "p1 get x y"}}
  213. test imgPhoto-4.26 {ImgPhotoCmd procedure: put option} {
  214.     list [catch {p1 put} err] $err
  215. } {1 {wrong # args: should be "p1 put {{colors...}...} ?-to x1 y1 x2 y2?"}}
  216. test imgPhoto-4.27 {ImgPhotoCmd procedure: put option} {
  217.     list [catch {p1 put {{white} {white white}}} err] $err
  218. } {1 {all elements of color list must have the same number of elements}}
  219. test imgPhoto-4.28 {ImgPhotoCmd procedure: put option} {
  220.     list [catch {p1 put {{blahgle}}} err] $err
  221. } {1 {can't parse color "blahgle"}}
  222. test imgPhoto-4.29 {ImgPhotoCmd procedure: put option} {
  223.     p1 put -to 10 10 20 20 {{white}}
  224.     p1 get 19 19
  225. } {255 255 255}
  226. test imgPhoto-4.30 {ImgPhotoCmd procedure: read option} {
  227.     list [catch {p1 read} err] $err
  228. } {1 {wrong # args: should be "p1 read fileName ?-format format-name? ?-from x1 y1 x2 y2? ?-to x y? ?-shrink?"}}
  229. test imgPhoto-4.31 {ImgPhotoCmd procedure: read option} {
  230.     list [catch {p1 read [file join $tk_library demos/images/teapot.ppm] \
  231.      -zoom 2} err] $err
  232. } {1 {unrecognized option "-zoom": must be -format, -from, -shrink, or -to}}
  233. test imgPhoto-4.32 {ImgPhotoCmd procedure: read option} {
  234.     list [catch {p1 read bogus} err] [string tolower $err]
  235. } {1 {couldn't open "bogus": no such file or directory}}
  236. test imgPhoto-4.33 {ImgPhotoCmd procedure: read option} {
  237.     list [catch {p1 read [file join $tk_library demos/images/teapot.ppm] \
  238.         -format bogus} err] $err
  239. } {1 {image file format "bogus" is not supported}}
  240. test imgPhoto-4.34 {ImgPhotoCmd procedure: read option} {
  241.     list [catch {p1 read README} err] $err
  242. } {1 {couldn't recognize data in image file "README"}}
  243. test imgPhoto-4.35 {ImgPhotoCmd procedure: read option} {
  244.     p1 read [file join $tk_library demos/images/teapot.ppm] -shrink
  245.     list [image width p1] [image height p1] [p1 get 120 120]
  246. } {256 256 {161 109 82}}
  247. test imgPhoto-4.36 {ImgPhotoCmd procedure: read option} {
  248.     p1 read [file join $tk_library demos/images/teapot.ppm] \
  249.          -from 0 70 60 120 -to 10 10 -shrink
  250.     list [image width p1] [image height p1] [p1 get 29 19]
  251. } {70 60 {244 180 144}}
  252. test imgPhoto-4.37 {ImgPhotoCmd procedure: redither option} {
  253.     p1 redither
  254.     list [catch {p1 redither x} err] $err
  255. } {1 {wrong # args: should be "p1 redither"}}
  256. test imgPhoto-4.38 {ImgPhotoCmd procedure: write option} {
  257.     list [catch {p1 write} err] $err
  258. } {1 {wrong # args: should be "p1 write fileName ?-format format-name??-from x1 y1 x2 y2?"}}
  259. test imgPhoto-4.39 {ImgPhotoCmd procedure: write option} {
  260.     list [catch {p1 write teapot.tmp -format bogus} err] $err
  261. } {1 {image file format "bogus" is unknown}}
  262.  
  263. test imgPhoto-5.1 {ImgPhotoGet/Free procedures, shared instances} {
  264.     eval image delete [image names]
  265.     .c delete all
  266.     image create photo p1 -file [file join $tk_library demos/images/teapot.ppm]
  267.     .c create image 0 0 -image p1 -tags p1.1
  268.     .c create image 256 0 -image p1 -tags p1.2
  269.     .c create image 0 256 -image p1 -tags p1.3
  270.     update
  271.     .c delete i1.1
  272.     p1 configure -width 1
  273.     update
  274.     .c delete i1.2
  275.     p1 configure -height 1
  276.     update
  277.     image delete p1
  278. } {}
  279.  
  280. test imgPhoto-6.1 {ImgPhotoDisplay procedure, blank display} {
  281.     .c delete all
  282.     image create photo p1 -width 10 -height 10
  283.     p1 blank
  284.     .c create image 10 10 -image p1
  285.     update
  286. } {}
  287.  
  288. test imgPhoto-7.1 {ImgPhotoFree procedure, resource freeing} {
  289.     eval image delete [image names]
  290.     .c delete all
  291.     image create photo p1 -file [file join $tk_library demos/images/teapot.ppm]
  292.     .c create image 0 0 -image p1 -anchor nw
  293.     update
  294.     .c delete all
  295.     image delete p1
  296. } {}
  297. test imgPhoto-7.2 {ImgPhotoFree procedures, unlinking} {
  298.     image create photo p1 -file [file join $tk_library demos/images/teapot.ppm]
  299.     .c create image 10 10 -image p1 -anchor nw
  300.     button .b1 -image p1
  301.     button .b2 -image p1
  302.     button .b3 -image p1
  303.     pack .b1 .b2 .b3
  304.     update
  305.     destroy .b2
  306.     update
  307.     destroy .b3
  308.     update
  309.     destroy .b1
  310.     update
  311.     .c delete all
  312. } {}
  313. test imgPhoto-7.3 {ImgPhotoFree procedures, multiple visuals} {
  314.     image create photo p1 -file [file join $tk_library demos/images/teapot.ppm]
  315.     button .b1 -image p1
  316.     frame .f -visual best
  317.     button .f.b2 -image p1
  318.     pack .f.b2
  319.     pack .b1 .f
  320.     update
  321.     destroy .b1
  322.     update
  323.     .f.b2 configure -image {}
  324.     update
  325.     destroy .f
  326.     image delete p1
  327. } {}
  328.  
  329. test imgPhoto-8.1 {ImgPhotoDelete procedure} {
  330.     image create photo p2 -file [file join $tk_library demos/images/teapot.ppm]
  331.     image delete p2
  332. } {}
  333. test imagePhoto-8.2 {ImgPhotoDelete procedure} {
  334.     image create photo p2 -file [file join $tk_library demos/images/teapot.ppm]
  335.     rename p2 newp2
  336.     set x [list [info command p2] [info command new*] [newp2 cget -file]]
  337.     image delete p2
  338.     lappend x [info command new*]
  339. } [list {} newp2 [file join $tk_library demos/images/teapot.ppm] {}]
  340. test imagePhoto-8.3 {ImgPhotoDelete procedure, name cleanup} {
  341.     image create photo p1
  342.     image create photo p2 -width 10 -height 10
  343.     image delete p2
  344.     list [catch {p1 copy p2} msg] $msg
  345. } {1 {image "p2" doesn't exist or is not a photo image}}
  346.  
  347. test imagePhoto-9.1 {ImgPhotoCmdDeletedProc procedure} {
  348.     image create photo p2 -file [file join $tk_library demos/images/teapot.ppm]
  349.     rename p2 {}
  350.     list [lsearch -exact [image names] p2] [catch {p2 foo} msg] $msg
  351. } {-1 1 {invalid command name "p2"}}
  352.  
  353. test imgPhoto-10.1 {Tk_ImgPhotoPutBlock procedure} {
  354.     eval image delete [image names]
  355.     image create photo p1
  356.     p1 put {{#ff0000 #ff0000 #ff0000 #ff0000 #ff0000 #ff0000 #ff0000 #ff0000}} \
  357.         -to 0 0
  358.     p1 put {{#00ff00 #00ff00}} -to 2 0
  359.     list [p1 get 2 0] [p1 get 3 0] [p1 get 4 0]
  360. } {{0 255 0} {0 255 0} {255 0 0}}
  361.  
  362. test imgPhoto-11.1 {Tk_FindPhoto} {
  363.     eval image delete [image names]
  364.     image create bitmap i1
  365.     image create photo p1
  366.     list [catch {p1 copy i1} msg] $msg
  367. } {1 {image "i1" doesn't exist or is not a photo image}}
  368.  
  369. test imgPhoto-12.1 {Tk_PhotoPutZoomedBlock} {
  370.     image create photo p3 -file [file join $tk_library demos/images/teapot.ppm]
  371.     set result [list [p3 get 50 50] [p3 get 100 100]]
  372.     p3 copy p3 -zoom 2
  373.     lappend result [image width p3] [image height p3] [p3 get 100 100]
  374.     image delete p3
  375.     set result
  376. } {{19 92 192} {169 117 90} 512 512 {19 92 192}}
  377.  
  378. test imgPhoto-13.1 {check separation of images in different interpreters} {
  379.     eval image delete [image names]
  380.     set data {
  381.     R0lGODlhQgBkAPUAANbWxs7Wxs7OxsbOxsbGxsbGvb3Gvca9vcDAwL21vbW1vbW1tbWtta2t
  382.     ta2ltaWltaWlraWctaWcrZycrZyUrZSUrZSMrZSMpYyMrYyMpYyEpYSEpYR7pYR7nHp7pYRz
  383.     pYRynHtzpXtznHtrnHNrnHNjnGtjnGtjlGtalGNalGNSlGNSjFpSlFpKlFpKjFJKjFJCjFI5
  384.     jEo5jEo5hEoxhEIxhDkphDkhhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAQgBkAAAG
  385.     /kCEcEgsGo/IpHLJbDqf0Kh0Sq1ar9isdsvter/gsHhMLpvP6LR6zW673/C4fE6v2+/4vH7P
  386.     7/v/gIGCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmOBZxXnAQEnKIIBUQJCguoDKkIBgWhpUev
  387.     CA4TDwgEUpwKERUaHCIiJCQjIiEUQhwqKiwqLjDQMCwoIha3oUO5ESMuLSwtLSIMsU4Tzi4o
  388.     JBwWFA8ODQoMCkIMq6sNDQ4UFhwlzC4qSGhgkMvCsAoM6E0oAWMCOSUFGrgQcauAgAACSqGa
  389.     l6SAK1EaJXBA0SIDBw0KBiCg8EtEBgEWYCxoooAigFwIJGgQYQIF/goTAjk6sXhxAwwFnHRO
  390.     mEmAwoQAIUo8lCWhRgoOElJVkJBQFCwhCRqkYlUE1QMKHEywoBCrQaeIMCgQeOCi3AkYMmRI
  391.     S5EuxEkN7OApkGDhF4fDxoSVMAFUBAWkRxI0a+XghVAkBSqMsFCBwj4OI0igSKGCdLN0wYKd
  392.     zGDBwUYhn6YOKUCioQECGk7INpIArQgUKkr87TyhAYIDQxQgLkYsRIcQIDjcgi2Lw8RYKaAz
  393.     MXCgAs8UJrZGmOA5AkeQBlqRKsIpvYMQDx4S4NCCxIJSKJpFYMIgnPlSF2ygAQWuCUHAAp6x
  394.     E4EEE5BXQQUWYLABBySoAIMLHBSBWwso/jxwIAoyzMAWEw3AEEJCt6nUwAQagCDCYcCQwJcK
  395.     6QD3DDQxwNDCCSg9NIAGKpwwgQAOtDADDBbsdkQDIPhkwosDPgDPAg1EAME++1jTnhAKdAnb
  396.     VAR04EIJFAhwwQs0sBDfE7cZwEAE++yU2joOtDcKE7GUcoIKH6RSmwwnQCZFKAo8cE2es7my
  397.     HnuxKTDgAA6owEEBjoL3wqRUNDBCCnyRYMFMRSDoWYPvyBPPA738lt1KKTxgpjolrDDiFAWU
  398.     cAMKE+CipAMRZMDTCSSUQMIJPQHLwWOcrDKBCBpokAIJgmYqQgosxIAOCS8iJEQD7HR2QbMh
  399.     WCCEK7Ck90Cz/oAFu+YVigpTwTsLyJOcBJ6N6plxRihA3E4cOKTkFCU6FMoAA7wiygAZgURA
  400.     ekYsEJYFGTSATRccQEMjti8eZsEFFuA7z2WkEJAAl7iEQekEhQHGzgQR4INUKLB8pYAFJaQA
  401.     KhleKdwAByEkFswHIoxQQn4AcYBvGRosisDICCjQAIMJGnZYBsUd4JEZBIhQwgPzKFwAwggL
  402.     IHbOQzCtxZ1NL0BlKmmhIOwwHGTg2YMUEBdtKzBfbQWlhMHoHIXBnvABBGE9UMKNMKhgQgnG
  403.     nNQO0wVQoI4FEohFyr9GzDIYaaPxxWy0rCjKQJUMQvxBaMOgNMQChcU4DAkZ6PoV/hIUoP4i
  404.     Z7g/YHZHIPXeyWyONgsaCi4AOoLjXP8uhAAvPpCQ2Akr38UpXW60Ij8yPkMmwwj8KAI8QWtQ
  405.     +eXSixEb37WhcHQBERz2rdZ8leCBBcXNY3XevQ8VG/6+F5CACDYgATlmYYD27aRmLngBNADC
  406.     GGxxQEAWUJDzqpcctc2DARN4kNRgtJxhnKAFV0kIEhYAJ34IQwUhqkENYFCCE5BmGf9wwWmA
  407.     5UGgXAAVtfCFMIgRLMbFLQIPYFACcMI7TjQoH2eJQIs2poEMYMAp5XGAvFrBCYS9ImzQG1vT
  408.     arGTEQhIhE7QjLA+MKDOxClGwuoJtWi0uBIUIxjDSE2wQ4iHl7ywQDjGwZws/NcAlgBjaKQJ
  409.     JDVuoQBeUeACoFkMcFqgQL1IgxpRSsjsqHA/gy0tHvmAx2z2BxIupaJrnVxCEAAAOw==
  410.     }
  411.     interp create x1
  412.     interp create x2
  413.     x1 eval {load {} Tk}
  414.     x2 eval {load {} Tk}
  415.     x1 eval [list image create photo T1_data -data $data]
  416.     x2 eval [list image create photo T1_data -data $data]
  417.     unset data
  418.     interp delete x1
  419.     interp delete x2
  420. } {}
  421.  
  422. destroy .c
  423. eval image delete [image names]
  424.